#ifndef TICKCOUNTRUNNABLEWIN_HPP
#define TICKCOUNTRUNNABLEWIN_HPP

#include <QtCore/QObject>
#include <QtCore/QDebug>
#include <QtCore/QCoreApplication>
#include <QtCore/QVariant>

#include <windows.h>
#include <stdio.h>
#include <math.h>

#include "tickcountrunnable.hpp"

/**
 * @brief TickCountRunnable native implementation for Windows
 *
 * @details Will use high resolution timers (QueryPerformanceCounter(LARGE_INTEGER &counter)) if available
 * Otherwise only GetTickCount() will be used
 *
 * @see TickCountRunnable
 *
 * @class TickCountRunnableWin tickcountrunnablewin.hpp "tickcountrunnablewin.hpp"
*/
class TickCountRunnableWin : public TickCountRunnable
{
    Q_OBJECT

public:
    /**
     * @brief Default Constructor
     *
     * @fn TickCountRunnableWin
     * @param parent
    */
    explicit TickCountRunnableWin (QObject *parent = 0);

private:
    /**
     * @brief Run function for the Thread
     *
     * @fn run
    */
    void run();

    bool m_useHighResolution;

};

#endif // TICKCOUNTRUNNABLEWIN_HPP
